<?php
namespace app\modelOpreate;
use think\facade\Db;

/**
 * ClassName:模型操作基类
 * @auditor LeiJunXiang
 * @time 2024/09/26
 */
class ModelOpeBase extends \think\Model
{
    //自动设置时间戳字段
    protected $autoWriteTimestamp = true;
    //主键
    protected $pk = 'objKey';
    // 设置当前模型对应的完整数据表名称
    protected $table = '';
    //对象key
    protected $objKey;




    public function __construct()
    {
        parent::__construct();
        $this->table = basename(str_replace('\\', '/', get_class($this)));
        $this->table = str_replace(['Ope'], '',$this->table);
    }

    /**
     * 获取db对象
     * @return void
     */
    protected function getDb(){
        $db = \think\facade\Db::table($this->table);
        return $db;
    }

    /**
     * 插入单条数据
     * @return int|string
     */
    public function insertToData($arr)
    {
        $db = Db::table($this->table);
        $flag = $db->insert($arr);
        return $flag;
    }

    /**
     * 插入多条数据
     * @return int|string
     */
    public function insertAllToData($arr)
    {
        $db = Db::table($this->table);
        $flag = $db->insertAll($arr);
        return $flag;
    }

    /**
     * 生成唯一编号
     * @return string
     */
    public function createUniqueNumber() {
        // 生成一个 4 位的随机数
        $randomPart = mt_rand(1000, 9999);
        // 截取时间戳的第 8 位之后的数字
        $timePart = substr((string)time(), 5);
        // 拼接生成的编号
        return $timePart . $randomPart;
    }



    /**
     * 设置属性（属性数组）
     */
    public function setAttribute($data)
    {
        if ($data) {
            foreach ($data as $key => $value) {
                if (property_exists($this, $key)) {
                    $this->$key= $value;
                }
            }
        }
    }

    /**
     * @return mixed
     */
    public function getObjKey()
    {
        return $this->objKey;
    }

    /**
     * @param mixed $objKey
     */
    public function setObjKey($objKey): void
    {
        $this->objKey = $objKey;
    }



}
